package com.okwanshiwu.pattern.ProxyPattern;

/**
 * ***********************************************************************************************
 * 版权所有 (C)
 * <p>
 * 文件名称：代理模式
 * 作    者：master 
 * 完成日期：20170713
 * 优点： 1、职责清晰。 2、高扩展性。 3、智能化。
 * 缺点： 1、由于在客户端和真实主题之间增加了代理对象，因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作，有些代理模式的实现非常复杂。
 * 注意事项： 1、和适配器模式的区别：适配器模式主要改变所考虑对象的接口，而代理模式不能改变所代理类的接口。 2、和装饰器模式的区别：装饰器模式为了增强功能，而代理模式是为了加以控制。
 * 实现
 * 我们将创建一个 Image 接口和实现了 Image 接口的实体类。ProxyImage是一个代理类，减少RealImage对象加载的内存占用。
 * ProxyPatternDemo，我们的演示类使用 ProxyImage 来获取要加载的 Image 对象，并按照需求进行显示。
 * **********************************************************************************************
 */
public class ProxyPattern {
    public static void main(String[] args) {
        Image image = new ProxyImage("test_10mb.jpg");
        //图像将从磁盘加载
        image.display();
        System.out.println("");
        //图像将无法从磁盘加载
        image.display();
     }
}
